#pragma once
#include "..\common.h"
#include "DCreature.h"
#include "DMaterial.h"

namespace DeepClasses
{

	class DCell : public DAbstract
	{
	public:
		DCell();
		virtual ~DCell();

		// cell main object (maybe a tree or some furniture)
		// the first thing to display by GUI. Set to NULL in case 
		// the cell is filled with stone
		DObject* m_mainObj;

		std::list<DObject*> m_secObjs;

		// point to material for floor of the cell.
		// NULL to make a cell without floor
		DMaterial* m_floorMat;

		// point to material for cell filling. Choose from stone, liquid, etc.
		// NULL to make cell empty
		DMaterial* m_fillMat;

		// pointer to creature that occupies the cell
		DCreature* m_creature;
		
		void GetObjectsByName(std::list<DObject*>& list, DString name);
	};
};